home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / os2 / ooxdb200.zip / ooxbase.xh < prev    next >
Text File  |  1996-11-13  |  33KB  |  1,265 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: ooxbase.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. #ifndef SOM_ooxdbf_xh
  11. #define SOM_ooxdbf_xh
  12.  
  13. class ooxdbf;
  14.  
  15. #define ooxdbf_MajorVersion 0
  16. #define ooxdbf_MinorVersion 0
  17.  
  18. /* C++ SOM defs */
  19. #include <somcls.xh>
  20. #include <somcm.xh>
  21.  
  22. /* C++ parent defs */
  23. #ifndef SOM_SOMObject_xh
  24. #include <somobj.xh>
  25. #endif
  26.  
  27. #ifndef ooxdbf_API
  28. #define ooxdbf_API
  29. /*
  30.  * -- The Class API
  31.  */
  32.  
  33. /*
  34.  * Start of bindings for IDL types
  35.  */
  36.  
  37. class SOMClass;
  38. class SOMObject;
  39. class ooxfield;
  40. #define ex_ooxdbf_DBF_ERROR "::ooxdbf::DBF_ERROR"
  41. typedef
  42. struct ooxdbf_DBF_ERROR {
  43. long  ErrCode;
  44. char  Reason[80];
  45. } ooxdbf_DBF_ERROR;
  46.  
  47. #ifndef SOM_DONT_USE_SHORT_NAMES
  48. #ifndef SOMTGD_ex_DBF_ERROR
  49.     #ifdef ex_DBF_ERROR
  50.         #undef ex_DBF_ERROR
  51.         #define SOMTGD_ex_DBF_ERROR 1
  52.     #else
  53.         #define ex_DBF_ERROR ex_ooxdbf_DBF_ERROR
  54.     #endif /* ex_DBF_ERROR */
  55. #endif /* SOMTGD_ex_DBF_ERROR */
  56. #ifndef SOMTGD_DBF_ERROR
  57.     #ifdef DBF_ERROR
  58.         #undef DBF_ERROR
  59.         #define SOMTGD_DBF_ERROR 1
  60.     #else
  61.         #define DBF_ERROR ooxdbf_DBF_ERROR
  62.     #endif /* DBF_ERROR */
  63. #endif /* SOMTGD_DBF_ERROR */
  64. #endif /* SOM_DONT_USE_SHORT_NAMES */
  65.  
  66. /*
  67.  * End of bindings for IDL types.
  68.  */
  69.  
  70. /* A procedure to create the ooxdbf Class */
  71. SOMEXTERN SOMClass * SOMLINK ooxdbfNewClass(
  72.         integer4 majorVersion,
  73.         integer4 minorVersion);
  74.  
  75. /* The API to the ooxdbf class object, and the methods it introduces. */
  76. SOMEXTERN struct ooxdbfClassDataStructure {
  77.     SOMClass *classObject;
  78.     somMToken _get_error;
  79.     somMToken _get_current_record;
  80.     somMToken _get_record_count;
  81.     somMToken _get_field_count;
  82.     somMToken _get_new_record_size;
  83.     somMToken _set_new_record_size;
  84.     somMToken Open;
  85.     somMToken Read;
  86.     somMToken Write;
  87.     somMToken GoTo;
  88.     somMToken Update;
  89.     somMToken Close;
  90.     somMToken field;
  91.     somMToken field_by_name;
  92.     somMToken reset_index;
  93.     somMToken attach_index;
  94.     somMToken use_index;
  95.     somMToken createindex;
  96.     somMToken buildindex;
  97.     somMToken add_tag;
  98.     somMToken find;
  99.     somMToken reindex;
  100.     somMToken Read_prev;
  101.     somMToken Delete;
  102.     somMToken Undelete;
  103.     somMToken Pack;
  104.     somMToken drop_tag;
  105.     somMToken export;
  106.     somMToken import;
  107.     somMToken sort;
  108.     somMToken usingfilename;
  109.     somMToken defineDBF;
  110.     somMToken defineDBFusing;
  111.     somMToken DBFdefined;
  112.     somMToken _get_deleted;
  113.     somMToken addfld;
  114.     somMToken dropfld;
  115.     somMToken modifyfld;
  116. } SOMDLINK ooxdbfClassData;
  117. #define _ooxdbf ooxdbfClassData.classObject
  118.  
  119. /* The API to parentMtabs for ooxdbf, and the instance data it introduces. */
  120. SOMEXTERN struct ooxdbfCClassDataStructure {
  121.     somMethodTabs parentMtab;
  122.     somDToken              instanceDataToken;
  123. } SOMDLINK ooxdbfCClassData;
  124.  
  125. /*
  126.  * -- Typedefs for ooxdbf Method Procedures
  127.  */
  128. SOMEXTERN {
  129. typedef string   SOMLINK somTP_ooxdbf__get_error(ooxdbf *somSelf);
  130. typedef somTP_ooxdbf__get_error *somTD_ooxdbf__get_error;
  131. typedef long   SOMLINK somTP_ooxdbf__get_current_record(ooxdbf *somSelf);
  132. typedef somTP_ooxdbf__get_current_record *somTD_ooxdbf__get_current_record;
  133. typedef long   SOMLINK somTP_ooxdbf__get_record_count(ooxdbf *somSelf);
  134. typedef somTP_ooxdbf__get_record_count *somTD_ooxdbf__get_record_count;
  135. typedef long   SOMLINK somTP_ooxdbf__get_field_count(ooxdbf *somSelf);
  136. typedef somTP_ooxdbf__get_field_count *somTD_ooxdbf__get_field_count;
  137. typedef boolean   SOMLINK somTP_ooxdbf__get_deleted(ooxdbf *somSelf);
  138. typedef somTP_ooxdbf__get_deleted *somTD_ooxdbf__get_deleted;
  139. typedef short   SOMLINK somTP_ooxdbf_Open(ooxdbf *somSelf, 
  140.         string dbfname);
  141. typedef somTP_ooxdbf_Open *somTD_ooxdbf_Open;
  142. typedef short   SOMLINK somTP_ooxdbf_Read(ooxdbf *somSelf);
  143. typedef somTP_ooxdbf_Read *somTD_ooxdbf_Read;
  144. typedef short   SOMLINK somTP_ooxdbf_Read_prev(ooxdbf *somSelf);
  145. typedef somTP_ooxdbf_Read_prev *somTD_ooxdbf_Read_prev;
  146. typedef short   SOMLINK somTP_ooxdbf_Write(ooxdbf *somSelf);
  147. typedef somTP_ooxdbf_Write *somTD_ooxdbf_Write;
  148. typedef short   SOMLINK somTP_ooxdbf_GoTo(ooxdbf *somSelf, 
  149.         long recno);
  150. typedef somTP_ooxdbf_GoTo *somTD_ooxdbf_GoTo;
  151. typedef short   SOMLINK somTP_ooxdbf_Update(ooxdbf *somSelf);
  152. typedef somTP_ooxdbf_Update *somTD_ooxdbf_Update;
  153. typedef short   SOMLINK somTP_ooxdbf_Delete(ooxdbf *somSelf);
  154. typedef somTP_ooxdbf_Delete *somTD_ooxdbf_Delete;
  155. typedef short   SOMLINK somTP_ooxdbf_Undelete(ooxdbf *somSelf);
  156. typedef somTP_ooxdbf_Undelete *somTD_ooxdbf_Undelete;
  157. typedef short   SOMLINK somTP_ooxdbf_Pack(ooxdbf *somSelf);
  158. typedef somTP_ooxdbf_Pack *somTD_ooxdbf_Pack;
  159. typedef short   SOMLINK somTP_ooxdbf_Close(ooxdbf *somSelf);
  160. typedef somTP_ooxdbf_Close *somTD_ooxdbf_Close;
  161. typedef ooxfield*   SOMLINK somTP_ooxdbf_field(ooxdbf *somSelf, 
  162.         long i);
  163. typedef somTP_ooxdbf_field *somTD_ooxdbf_field;
  164. typedef ooxfield*   SOMLINK somTP_ooxdbf_field_by_name(ooxdbf *somSelf, 
  165.         string name);
  166. typedef somTP_ooxdbf_field_by_name *somTD_ooxdbf_field_by_name;
  167. typedef void   SOMLINK somTP_ooxdbf_reset_index(ooxdbf *somSelf, 
  168.         long from);
  169. typedef somTP_ooxdbf_reset_index *somTD_ooxdbf_reset_index;
  170. typedef short   SOMLINK somTP_ooxdbf_find(ooxdbf *somSelf, 
  171.         string key);
  172. typedef somTP_ooxdbf_find *somTD_ooxdbf_find;
  173. typedef short   SOMLINK somTP_ooxdbf_reindex(ooxdbf *somSelf);
  174. typedef somTP_ooxdbf_reindex *somTD_ooxdbf_reindex;
  175. typedef long   SOMLINK somTP_ooxdbf_attach_index(ooxdbf *somSelf, 
  176.         string ndxdata);
  177. typedef somTP_ooxdbf_attach_index *somTD_ooxdbf_attach_index;
  178. typedef long   SOMLINK somTP_ooxdbf_use_index(ooxdbf *somSelf, 
  179.         string ndxdata);
  180. typedef somTP_ooxdbf_use_index *somTD_ooxdbf_use_index;
  181. typedef long   SOMLINK somTP_ooxdbf_createindex(ooxdbf *somSelf, 
  182.         string name, 
  183.         string ndxdata);
  184. typedef somTP_ooxdbf_createindex *somTD_ooxdbf_createindex;
  185. typedef long   SOMLINK somTP_ooxdbf_buildindex(ooxdbf *somSelf, 
  186.         string ndxdata);
  187. typedef somTP_ooxdbf_buildindex *somTD_ooxdbf_buildindex;
  188. typedef long   SOMLINK somTP_ooxdbf_add_tag(ooxdbf *somSelf, 
  189.         string ndxdata, 
  190.         string key);
  191. typedef somTP_ooxdbf_add_tag *somTD_ooxdbf_add_tag;
  192. typedef long   SOMLINK somTP_ooxdbf_drop_tag(ooxdbf *somSelf, 
  193.         string ndxdata);
  194. typedef somTP_ooxdbf_drop_tag *somTD_ooxdbf_drop_tag;
  195. typedef long   SOMLINK somTP_ooxdbf_export(ooxdbf *somSelf, 
  196.         string filename, 
  197.         char delimiter);
  198. typedef somTP_ooxdbf_export *somTD_ooxdbf_export;
  199. typedef long   SOMLINK somTP_ooxdbf_import(ooxdbf *somSelf, 
  200.         string filename, 
  201.         char delimiter);
  202. typedef somTP_ooxdbf_import *somTD_ooxdbf_import;
  203. typedef long   SOMLINK somTP_ooxdbf_sort(ooxdbf *somSelf, 
  204.         string filename, 
  205.         string fields);
  206. typedef somTP_ooxdbf_sort *somTD_ooxdbf_sort;
  207. typedef void   SOMLINK somTP_ooxdbf_usingfilename(ooxdbf *somSelf, 
  208.         somInitCtrl* ctrl, 
  209.         string Name);
  210. typedef somTP_ooxdbf_usingfilename *somTD_ooxdbf_usingfilename;
  211. typedef void   SOMLINK somTP_ooxdbf_defineDBF(ooxdbf *somSelf, 
  212.         somInitCtrl* ctrl, 
  213.         string Name, 
  214.         ooxfield* field);
  215. typedef somTP_ooxdbf_defineDBF *somTD_ooxdbf_defineDBF;
  216. typedef void   SOMLINK somTP_ooxdbf_defineDBFusing(ooxdbf *somSelf, 
  217.         somInitCtrl* ctrl, 
  218.         string Name, 
  219.         ooxdbf* usingDBF);
  220. typedef somTP_ooxdbf_defineDBFusing *somTD_ooxdbf_defineDBFusing;
  221. typedef long   SOMLINK somTP_ooxdbf_DBFdefined(ooxdbf *somSelf);
  222. typedef somTP_ooxdbf_DBFdefined *somTD_ooxdbf_DBFdefined;
  223. typedef long   SOMLINK somTP_ooxdbf_addfld(ooxdbf *somSelf, 
  224.         ooxfield* field);
  225. typedef somTP_ooxdbf_addfld *somTD_ooxdbf_addfld;
  226. typedef long   SOMLINK somTP_ooxdbf_dropfld(ooxdbf *somSelf, 
  227.         ooxfield* field);
  228. typedef somTP_ooxdbf_dropfld *somTD_ooxdbf_dropfld;
  229. typedef long   SOMLINK somTP_ooxdbf_modifyfld(ooxdbf *somSelf, 
  230.         ooxfield* oldfield, 
  231.         ooxfield* newfield);
  232. typedef somTP_ooxdbf_modifyfld *somTD_ooxdbf_modifyfld;
  233.  
  234. /*
  235.  * -- Typedefs for Reintroduced Wrapper Methods
  236.  */
  237. typedef void   SOMLINK somTP_ooxdbf_somDefaultInit(ooxdbf *somSelf, 
  238.         som3InitCtrl* ctrl);
  239. typedef somTP_ooxdbf_somDefaultInit *somTD_ooxdbf_somDefaultInit;
  240. typedef void   SOMLINK somTP_ooxdbf_somDestruct(ooxdbf *somSelf, 
  241.         octet doFree, 
  242.         som3DestructCtrl* ctrl);
  243. typedef somTP_ooxdbf_somDestruct *somTD_ooxdbf_somDestruct;
  244. typedef void   SOMLINK somTP_ooxdbf_somDefaultCopyInit(ooxdbf *somSelf, 
  245.         som3InitCtrl* ctrl, 
  246.         SOMObject* fromObj);
  247. typedef somTP_ooxdbf_somDefaultCopyInit *somTD_ooxdbf_somDefaultCopyInit;
  248. typedef ooxdbf*   SOMLINK somTP_ooxdbf_somDefaultAssign(ooxdbf *somSelf, 
  249.         som3AssignCtrl* ctrl, 
  250.         SOMObject* fromObj);
  251. typedef somTP_ooxdbf_somDefaultAssign *somTD_ooxdbf_somDefaultAssign;
  252. typedef void   SOMLINK somTP_ooxdbf_somDefaultConstCopyInit(ooxdbf *somSelf, 
  253.         som3InitCtrl* ctrl, 
  254.         SOMObject* fromObj);
  255. typedef somTP_ooxdbf_somDefaultConstCopyInit *somTD_ooxdbf_somDefaultConstCopyInit;
  256. typedef void   SOMLINK somTP_ooxdbf_somDefaultVCopyInit(ooxdbf *somSelf, 
  257.         som3InitCtrl* ctrl, 
  258.         SOMObject* fromObj);
  259. typedef somTP_ooxdbf_somDefaultVCopyInit *somTD_ooxdbf_somDefaultVCopyInit;
  260. typedef void   SOMLINK somTP_ooxdbf_somDefaultConstVCopyInit(ooxdbf *somSelf, 
  261.         som3InitCtrl* ctrl, 
  262.         SOMObject* fromObj);
  263. typedef somTP_ooxdbf_somDefaultConstVCopyInit *somTD_ooxdbf_somDefaultConstVCopyInit;
  264. typedef ooxdbf*   SOMLINK somTP_ooxdbf_somDefaultConstAssign(ooxdbf *somSelf, 
  265.         som3AssignCtrl* ctrl, 
  266.         SOMObject* fromObj);
  267. typedef somTP_ooxdbf_somDefaultConstAssign *somTD_ooxdbf_somDefaultConstAssign;
  268. typedef ooxdbf*   SOMLINK somTP_ooxdbf_somDefaultVAssign(ooxdbf *somSelf, 
  269.         som3AssignCtrl* ctrl, 
  270.         SOMObject* fromObj);
  271. typedef somTP_ooxdbf_somDefaultVAssign *somTD_ooxdbf_somDefaultVAssign;
  272. typedef ooxdbf*   SOMLINK somTP_ooxdbf_somDefaultConstVAssign(ooxdbf *somSelf, 
  273.         som3AssignCtrl* ctrl, 
  274.         SOMObject* fromObj);
  275. typedef somTP_ooxdbf_somDefaultConstVAssign *somTD_ooxdbf_somDefaultConstVAssign;
  276. typedef void   SOMLINK somTP_ooxdbf_somInit(ooxdbf *somSelf);
  277. typedef somTP_ooxdbf_somInit *somTD_ooxdbf_somInit;
  278. typedef void   SOMLINK somTP_ooxdbf_somFree(ooxdbf *somSelf);
  279. typedef somTP_ooxdbf_somFree *somTD_ooxdbf_somFree;
  280. typedef void   SOMLINK somTP_ooxdbf_somUninit(ooxdbf *somSelf);
  281. typedef somTP_ooxdbf_somUninit *somTD_ooxdbf_somUninit;
  282. typedef SOMClass*   SOMLINK somTP_ooxdbf_somGetClass(ooxdbf *somSelf);
  283. typedef somTP_ooxdbf_somGetClass *somTD_ooxdbf_somGetClass;
  284. typedef string   SOMLINK somTP_ooxdbf_somGetClassName(ooxdbf *somSelf);
  285. typedef somTP_ooxdbf_somGetClassName *somTD_ooxdbf_somGetClassName;
  286. typedef long   SOMLINK somTP_ooxdbf_somGetSize(ooxdbf *somSelf);
  287. typedef somTP_ooxdbf_somGetSize *somTD_ooxdbf_somGetSize;
  288. typedef boolean   SOMLINK somTP_ooxdbf_somIsA(ooxdbf *somSelf, 
  289.         SOMClass* aClassObj);
  290. typedef somTP_ooxdbf_somIsA *somTD_ooxdbf_somIsA;
  291. typedef boolean   SOMLINK somTP_ooxdbf_somIsInstanceOf(ooxdbf *somSelf, 
  292.         SOMClass* aClassObj);
  293. typedef somTP_ooxdbf_somIsInstanceOf *somTD_ooxdbf_somIsInstanceOf;
  294. typedef boolean   SOMLINK somTP_ooxdbf_somRespondsTo(ooxdbf *somSelf, 
  295.         somId mId);
  296. typedef somTP_ooxdbf_somRespondsTo *somTD_ooxdbf_somRespondsTo;
  297. typedef boolean   SOMLINK somTP_ooxdbf_somDispatch(ooxdbf *somSelf, 
  298.         somToken* retValue, 
  299.         somId methodId, 
  300.         va_list ap);
  301. typedef somTP_ooxdbf_somDispatch *somTD_ooxdbf_somDispatch;
  302. typedef boolean   SOMLINK somTP_ooxdbf_somClassDispatch(ooxdbf *somSelf, 
  303.         SOMClass* clsObj, 
  304.         somToken* retValue, 
  305.         somId methodId, 
  306.         va_list ap);
  307. typedef somTP_ooxdbf_somClassDispatch *somTD_ooxdbf_somClassDispatch;
  308. typedef boolean   SOMLINK somTP_ooxdbf_somCastObj(ooxdbf *somSelf, 
  309.         SOMClass* cls);
  310. typedef somTP_ooxdbf_somCastObj *somTD_ooxdbf_somCastObj;
  311. typedef boolean   SOMLINK somTP_ooxdbf_somResetObj(ooxdbf *somSelf);
  312. typedef somTP_ooxdbf_somResetObj *somTD_ooxdbf_somResetObj;
  313. typedef void   SOMLINK somTP_ooxdbf_somDispatchV(ooxdbf *somSelf, 
  314.         somId methodId, 
  315.         somId descriptor, 
  316.         va_list ap);
  317. typedef somTP_ooxdbf_somDispatchV *somTD_ooxdbf_somDispatchV;
  318. typedef long   SOMLINK somTP_ooxdbf_somDispatchL(ooxdbf *somSelf, 
  319.         somId methodId, 
  320.         somId descriptor, 
  321.         va_list ap);
  322. typedef somTP_ooxdbf_somDispatchL *somTD_ooxdbf_somDispatchL;
  323. typedef void*   SOMLINK somTP_ooxdbf_somDispatchA(ooxdbf *somSelf, 
  324.         somId methodId, 
  325.         somId descriptor, 
  326.         va_list ap);
  327. typedef somTP_ooxdbf_somDispatchA *somTD_ooxdbf_somDispatchA;
  328. typedef double   SOMLINK somTP_ooxdbf_somDispatchD(ooxdbf *somSelf, 
  329.         somId methodId, 
  330.         somId descriptor, 
  331.         va_list ap);
  332. typedef somTP_ooxdbf_somDispatchD *somTD_ooxdbf_somDispatchD;
  333. typedef SOMObject*   SOMLINK somTP_ooxdbf_somPrintSelf(ooxdbf *somSelf);
  334. typedef somTP_ooxdbf_somPrintSelf *somTD_ooxdbf_somPrintSelf;
  335. typedef void   SOMLINK somTP_ooxdbf_somDumpSelf(ooxdbf *somSelf, 
  336.         long level);
  337. typedef somTP_ooxdbf_somDumpSelf *somTD_ooxdbf_somDumpSelf;
  338. typedef void   SOMLINK somTP_ooxdbf_somDumpSelfInt(ooxdbf *somSelf, 
  339.         long level);
  340. typedef somTP_ooxdbf_somDumpSelfInt *somTD_ooxdbf_somDumpSelfInt;
  341. }
  342.  
  343. #endif /* ooxdbf_API */
  344.  
  345.  
  346. /*
  347.  * -- This emitter treats Method Tokens as Thunks by default.
  348.  * -- Use the sc modifier "nothunks" to change this default
  349.  */
  350. #undef somresolve_
  351. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  352.  
  353. /*
  354.  * -- The C++ Wrapper Class for ooxdbf
  355.  */
  356. class ooxdbf : public SOMObject
  357. {
  358. public:
  359.  
  360. // ooxdbf::new creates the class object if necessary, and then uses somNewNoInit
  361. // to allocate memory and create the object. Initialization is in ctors.
  362. void *operator new(size_t)
  363. {
  364.    if (!_ooxdbf) ooxdbfNewClass(ooxdbf_MajorVersion,ooxdbf_MinorVersion);
  365.    return (void*)
  366.       SOM_Resolve(_ooxdbf,SOMClass,somNewNoInit)
  367.          ((SOMClass *)((void*)_ooxdbf));
  368. }
  369.  
  370. // ooxdbf::delete uses somDestruct.
  371. void operator delete(void * obj)
  372. {
  373.    if (obj && *(void**)obj) {
  374.       SOM_Resolve(obj,SOMObject,somFree)
  375.          ((SOMObject*)obj);
  376.    }
  377. }
  378.  
  379. ooxdbf& operator=(ooxdbf& fromObj)
  380. {
  381.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  382.    return *this;
  383. }
  384.  
  385. ooxdbf()
  386. {
  387.    if (*(void**)this != 
  388.        ((somParentMtabStructPtr)
  389.         (ooxdbfCClassData.parentMtab))->mtab)
  390.       return;
  391.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  392. }
  393.  
  394. ooxdbf(ooxdbf* fromObj)
  395. {
  396.    if (*(void**)this != 
  397.        ((somParentMtabStructPtr)
  398.         (ooxdbfCClassData.parentMtab))->mtab)
  399.       return;
  400.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  401. }
  402.  
  403. #ifdef __IBMCPP__
  404. #pragma info(nocnv,nopar)
  405. #endif
  406. ooxdbf(const ooxdbf* fromObj)
  407. {
  408.    if (*(void**)this != 
  409.        ((somParentMtabStructPtr)
  410.         (ooxdbfCClassData.parentMtab))->mtab)
  411.       return;
  412.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  413. }
  414. #ifdef __IBMCPP__
  415. #pragma info(restore)
  416. #endif
  417.  
  418. ooxdbf(string Name) 
  419. {
  420.    usingfilename(0,Name);
  421. }
  422.  
  423. ooxdbf(string Name,ooxfield* field) 
  424. {
  425.    defineDBF(0,Name,field);
  426. }
  427.  
  428. ooxdbf(string Name,ooxdbf* usingDBF) 
  429. {
  430.    defineDBFusing(0,Name,usingDBF);
  431. }
  432.  
  433.  
  434. /* method: _get_error */
  435. string   _get_error()
  436. {
  437. /*
  438.  * Method from the IDL attribute statement:
  439.  * "readonly attribute string error"
  440.  */
  441.    return SOM_ResolveD(this,ooxdbf,ooxdbf,_get_error)
  442.     (this);
  443. }
  444.  
  445.  
  446. /* method: _get_current_record */
  447. long   _get_current_record()
  448. {
  449. /*
  450.  * Method from the IDL attribute statement:
  451.  * "readonly attribute long current_record"
  452.  */
  453.    return SOM_ResolveD(this,ooxdbf,ooxdbf,_get_current_record)
  454.     (this);
  455. }
  456.  
  457.  
  458. /* method: _get_record_count */
  459. long   _get_record_count()
  460. {
  461. /*
  462.  * Method from the IDL attribute statement:
  463.  * "readonly attribute long record_count"
  464.  */
  465.    return SOM_ResolveD(this,ooxdbf,ooxdbf,_get_record_count)
  466.     (this);
  467. }
  468.  
  469.  
  470. /* method: _get_field_count */
  471. long   _get_field_count()
  472. {
  473. /*
  474.  * Method from the IDL attribute statement:
  475.  * "readonly attribute long field_count"
  476.  */
  477.    return SOM_ResolveD(this,ooxdbf,ooxdbf,_get_field_count)
  478.     (this);
  479. }
  480.  
  481.  
  482. /* method: _get_deleted */
  483. boolean   _get_deleted()
  484. {
  485. /*
  486.  * Method from the IDL attribute statement:
  487.  * "readonly attribute boolean deleted"
  488.  */
  489.    return SOM_ResolveD(this,ooxdbf,ooxdbf,_get_deleted)
  490.     (this);
  491. }
  492.  
  493.  
  494. /* method: Open */
  495. short   Open(string dbfname)
  496. {
  497.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Open)
  498.     (this,dbfname);
  499. }
  500.  
  501.  
  502. /* method: Read */
  503. short   Read()
  504. {
  505.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Read)
  506.     (this);
  507. }
  508.  
  509.  
  510. /* method: Read_prev */
  511. short   Read_prev()
  512. {
  513.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Read_prev)
  514.     (this);
  515. }
  516.  
  517.  
  518. /* method: Write */
  519. short   Write()
  520. {
  521.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Write)
  522.     (this);
  523. }
  524.  
  525.  
  526. /* method: GoTo */
  527. short   GoTo(long recno)
  528. {
  529.    return SOM_ResolveD(this,ooxdbf,ooxdbf,GoTo)
  530.     (this,recno);
  531. }
  532.  
  533.  
  534. /* method: Update */
  535. short   Update()
  536. {
  537.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Update)
  538.     (this);
  539. }
  540.  
  541.  
  542. /* method: Delete */
  543. short   Delete()
  544. {
  545.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Delete)
  546.     (this);
  547. }
  548.  
  549.  
  550. /* method: Undelete */
  551. short   Undelete()
  552. {
  553.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Undelete)
  554.     (this);
  555. }
  556.  
  557.  
  558. /* method: Pack */
  559. short   Pack()
  560. {
  561.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Pack)
  562.     (this);
  563. }
  564.  
  565.  
  566. /* method: Close */
  567. short   Close()
  568. {
  569.    return SOM_ResolveD(this,ooxdbf,ooxdbf,Close)
  570.     (this);
  571. }
  572.  
  573.  
  574. /* method: field */
  575. ooxfield*   field(long i)
  576. {
  577.    return SOM_ResolveD(this,ooxdbf,ooxdbf,field)
  578.     (this,i);
  579. }
  580.  
  581.  
  582. /* method: field_by_name */
  583. ooxfield*   field_by_name(string name)
  584. {
  585.    return SOM_ResolveD(this,ooxdbf,ooxdbf,field_by_name)
  586.     (this,name);
  587. }
  588.  
  589.  
  590. /* method: reset_index */
  591. void   reset_index(long from)
  592. {
  593.    SOM_ResolveD(this,ooxdbf,ooxdbf,reset_index)
  594.     (this,from);
  595. }
  596.  
  597.  
  598. /* method: find */
  599. short   find(string key)
  600. {
  601.    return SOM_ResolveD(this,ooxdbf,ooxdbf,find)
  602.     (this,key);
  603. }
  604.  
  605.  
  606. /* method: reindex */
  607. short   reindex()
  608. {
  609.    return SOM_ResolveD(this,ooxdbf,ooxdbf,reindex)
  610.     (this);
  611. }
  612.  
  613.  
  614. /* method: attach_index */
  615. long   attach_index(string ndxdata)
  616. {
  617.    return SOM_ResolveD(this,ooxdbf,ooxdbf,attach_index)
  618.     (this,ndxdata);
  619. }
  620.  
  621.  
  622. /* method: use_index */
  623. long   use_index(string ndxdata)
  624. {
  625.    return SOM_ResolveD(this,ooxdbf,ooxdbf,use_index)
  626.     (this,ndxdata);
  627. }
  628.  
  629.  
  630. /* method: createindex */
  631. long   createindex(string name, 
  632.         string ndxdata)
  633. {
  634.    return SOM_ResolveD(this,ooxdbf,ooxdbf,createindex)
  635.     (this,name,ndxdata);
  636. }
  637.  
  638.  
  639. /* method: buildindex */
  640. long   buildindex(string ndxdata)
  641. {
  642.    return SOM_ResolveD(this,ooxdbf,ooxdbf,buildindex)
  643.     (this,ndxdata);
  644. }
  645.  
  646.  
  647. /* method: add_tag */
  648. long   add_tag(string ndxdata, 
  649.         string key)
  650. {
  651.    return SOM_ResolveD(this,ooxdbf,ooxdbf,add_tag)
  652.     (this,ndxdata,key);
  653. }
  654.  
  655.  
  656. /* method: drop_tag */
  657. long   drop_tag(string ndxdata)
  658. {
  659.    return SOM_ResolveD(this,ooxdbf,ooxdbf,drop_tag)
  660.     (this,ndxdata);
  661. }
  662.  
  663.  
  664. /* method: export */
  665. long   export(string filename, 
  666.         char delimiter)
  667. {
  668.    return SOM_ResolveD(this,ooxdbf,ooxdbf,export)
  669.     (this,filename,delimiter);
  670. }
  671.  
  672.  
  673. /* method: import */
  674. long   import(string filename, 
  675.         char delimiter)
  676. {
  677.    return SOM_ResolveD(this,ooxdbf,ooxdbf,import)
  678.     (this,filename,delimiter);
  679. }
  680.  
  681.  
  682. /* method: sort */
  683. long   sort(string filename, 
  684.         string fields)
  685. {
  686.    return SOM_ResolveD(this,ooxdbf,ooxdbf,sort)
  687.     (this,filename,fields);
  688. }
  689.  
  690.  
  691. /* initializer method: usingfilename */
  692. void   usingfilename(somInitCtrl* ctrl, 
  693.         string Name)
  694. {
  695.    SOM_ResolveD(this,ooxdbf,ooxdbf,usingfilename)
  696.     (this,ctrl,Name);
  697. }
  698.  
  699.  
  700. /* initializer method: defineDBF */
  701. void   defineDBF(somInitCtrl* ctrl, 
  702.         string Name, 
  703.         ooxfield* field)
  704. {
  705.    SOM_ResolveD(this,ooxdbf,ooxdbf,defineDBF)
  706.     (this,ctrl,Name,field);
  707. }
  708.  
  709.  
  710. /* initializer method: defineDBFusing */
  711. void   defineDBFusing(somInitCtrl* ctrl, 
  712.         string Name, 
  713.         ooxdbf* usingDBF)
  714. {
  715.    SOM_ResolveD(this,ooxdbf,ooxdbf,defineDBFusing)
  716.     (this,ctrl,Name,usingDBF);
  717. }
  718.  
  719.  
  720. /* method: DBFdefined */
  721. long   DBFdefined()
  722. {
  723.    return SOM_ResolveD(this,ooxdbf,ooxdbf,DBFdefined)
  724.     (this);
  725. }
  726.  
  727.  
  728. /* method: addfld */
  729. long   addfld(ooxfield* field)
  730. {
  731.    return SOM_ResolveD(this,ooxdbf,ooxdbf,addfld)
  732.     (this,field);
  733. }
  734.  
  735.  
  736. /* method: dropfld */
  737. long   dropfld(ooxfield* field)
  738. {
  739.    return SOM_ResolveD(this,ooxdbf,ooxdbf,dropfld)
  740.     (this,field);
  741. }
  742.  
  743.  
  744. /* method: modifyfld */
  745. long   modifyfld(ooxfield* oldfield, 
  746.         ooxfield* newfield)
  747. {
  748.    return SOM_ResolveD(this,ooxdbf,ooxdbf,modifyfld)
  749.     (this,oldfield,newfield);
  750. }
  751.  
  752.  
  753. /*
  754.  * Reintroduce inherited methods
  755.  */
  756.  
  757. /* initializer method: somDefaultInit */
  758. void   somDefaultInit(som3InitCtrl* ctrl)
  759. {
  760. /*
  761.  *  A default initializer for a SOM object. Passing a null ctrl
  762.  *  indicates to the receiver that its class is the class of the
  763.  *  object being initialized, whereby the initializer will determine
  764.  *  an appropriate control structure.
  765.  */
  766.    SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultInit)
  767.     (this,ctrl);
  768. }
  769.  
  770.  
  771. /* method: somDestruct */
  772. void   somDestruct(octet doFree, 
  773.         som3DestructCtrl* ctrl)
  774. {
  775. /*
  776.  *  The default destructor for a SOM object. A nonzero <doFree>
  777.  *  indicates that the object storage should be freed by the
  778.  *  object's class (via somDeallocate) after uninitialization.
  779.  *  As with somDefaultInit, a null ctrl can be passed.
  780.  */
  781.    SOM_ResolveD(this,ooxdbf,SOMObject,somDestruct)
  782.     (this,doFree,ctrl);
  783. }
  784.  
  785.  
  786. /* initializer method: somDefaultCopyInit */
  787. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  788.         SOMObject* fromObj)
  789. {
  790. /*
  791.  *  A default copy constructor. Use this to make copies of objects for
  792.  *  calling methods with "by-value" argument semantics.
  793.  */
  794.    SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultCopyInit)
  795.     (this,ctrl,fromObj);
  796. }
  797.  
  798.  
  799. /* method: somDefaultAssign */
  800. ooxdbf*  somDefaultAssign(som3AssignCtrl* ctrl, 
  801.         SOMObject* fromObj)
  802. {
  803. /*
  804.  *  A default assignment operator. Use this to "assign" the state of one
  805.  *  object to another.
  806.  */
  807.    return SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultAssign)
  808.     (this,ctrl,fromObj);
  809. }
  810.  
  811.  
  812. /* initializer method: somDefaultConstCopyInit */
  813. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  814.         SOMObject* fromObj)
  815. {
  816. /*
  817.  *  A default copy constructor that uses a const fromObj.
  818.  */
  819.    SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultConstCopyInit)
  820.     (this,ctrl,fromObj);
  821. }
  822.  
  823.  
  824. /* initializer method: somDefaultVCopyInit */
  825. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  826.         SOMObject* fromObj)
  827. {
  828. /*
  829.  *  A default copy constructor that uses a volatile fromObj.
  830.  */
  831.    SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultVCopyInit)
  832.     (this,ctrl,fromObj);
  833. }
  834.  
  835.  
  836. /* initializer method: somDefaultConstVCopyInit */
  837. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  838.         SOMObject* fromObj)
  839. {
  840. /*
  841.  *  A default copy constructor that uses a const volatile fromObj.
  842.  */
  843.    SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultConstVCopyInit)
  844.     (this,ctrl,fromObj);
  845. }
  846.  
  847.  
  848. /* method: somDefaultConstAssign */
  849. ooxdbf*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  850.         SOMObject* fromObj)
  851. {
  852. /*
  853.  *  A default assignment operator that uses a const fromObj.
  854.  */
  855.    return SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultConstAssign)
  856.     (this,ctrl,fromObj);
  857. }
  858.  
  859.  
  860. /* method: somDefaultVAssign */
  861. ooxdbf*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  862.         SOMObject* fromObj)
  863. {
  864. /*
  865.  *  A default assignment operator that uses a volatile fromObj.
  866.  */
  867.    return SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultVAssign)
  868.     (this,ctrl,fromObj);
  869. }
  870.  
  871.  
  872. /* method: somDefaultConstVAssign */
  873. ooxdbf*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  874.         SOMObject* fromObj)
  875. {
  876. /*
  877.  *  A default assignment operator that uses a const volatile fromObj.
  878.  */
  879.    return SOM_ResolveD(this,ooxdbf,SOMObject,somDefaultConstVAssign)
  880.     (this,ctrl,fromObj);
  881. }
  882.  
  883.  
  884. /* method: somInit */
  885. void   somInit()
  886. {
  887. /*
  888.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  889.  */
  890.    SOM_ResolveD(this,ooxdbf,SOMObject,somInit)
  891.     (this);
  892. }
  893.  
  894.  
  895. /* method: somFree */
  896. void   somFree()
  897. {
  898. /*
  899.  *  Use as directed by framework implementations.
  900.  */
  901.    SOM_ResolveD(this,ooxdbf,SOMObject,somFree)
  902.     (this);
  903. }
  904.  
  905.  
  906. /* method: somUninit */
  907. void   somUninit()
  908. {
  909. /*
  910.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  911.  */
  912.    SOM_ResolveD(this,ooxdbf,SOMObject,somUninit)
  913.     (this);
  914. }
  915.  
  916.  
  917. /* method: somGetClass */
  918. SOMClass*   somGetClass()
  919. {
  920. /*
  921.  *  Return the receiver's class.
  922.  */
  923.    return SOM_ResolveD(this,ooxdbf,SOMObject,somGetClass)
  924.     (this);
  925. }
  926.  
  927.  
  928. /* method: somGetClassName */
  929. string   somGetClassName()
  930. {
  931. /*
  932.  *  Return the name of the receiver's class.
  933.  */
  934.    return SOM_ResolveD(this,ooxdbf,SOMObject,somGetClassName)
  935.     (this);
  936. }
  937.  
  938.  
  939. /* method: somGetSize */
  940. long   somGetSize()
  941. {
  942. /*
  943.  *  Return the size of the receiver.
  944.  */
  945.    return SOM_ResolveD(this,ooxdbf,SOMObject,somGetSize)
  946.     (this);
  947. }
  948.  
  949.  
  950. /* method: somIsA */
  951. boolean   somIsA(SOMClass* aClassObj)
  952. {
  953. /*
  954.  *  Returns 1 (true) if the receiver responds to methods
  955.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  956.  */
  957.    return SOM_ResolveD(this,ooxdbf,SOMObject,somIsA)
  958.     (this,aClassObj);
  959. }
  960.  
  961.  
  962. /* method: somIsInstanceOf */
  963. boolean   somIsInstanceOf(SOMClass* aClassObj)
  964. {
  965. /*
  966.  *  Returns 1 (true) if the receiver is an instance of
  967.  *  <aClassObj> and 0 (false) otherwise.
  968.  */
  969.    return SOM_ResolveD(this,ooxdbf,SOMObject,somIsInstanceOf)
  970.     (this,aClassObj);
  971. }
  972.  
  973.  
  974. /* method: somRespondsTo */
  975. boolean   somRespondsTo(somId mId)
  976. {
  977. /*
  978.  *  Returns 1 (true) if the indicated method can be invoked
  979.  *  on the receiver and 0 (false) otherwise.
  980.  */
  981.    return SOM_ResolveD(this,ooxdbf,SOMObject,somRespondsTo)
  982.     (this,mId);
  983. }
  984.  
  985.  
  986. /* va_list method: somDispatch */
  987.  
  988. /*
  989.  *  This method provides a generic, class-specific dispatch mechanism.
  990.  *  It accepts as input <retValue> a pointer to the memory area to be
  991.  *  loaded with the result of dispatching the method indicated by
  992.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  993.  *  on which the method is to be invoked as the first argument.
  994.  */
  995. /* the va_list invocation form */
  996. boolean   ooxdbf_somDispatch(somToken* retValue, 
  997.         somId methodId, 
  998.         va_list ap)
  999. {return SOM_ResolveD(this,ooxdbf,SOMObject,somDispatch)
  1000.     (this,retValue,methodId,ap);
  1001. }
  1002.  
  1003. /* the varargs invocation form */
  1004. boolean   somDispatch(somToken* retValue, 
  1005.         somId methodId, 
  1006.         ...)
  1007. {
  1008. /*
  1009.  *  This method provides a generic, class-specific dispatch mechanism.
  1010.  *  It accepts as input <retValue> a pointer to the memory area to be
  1011.  *  loaded with the result of dispatching the method indicated by
  1012.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  1013.  *  on which the method is to be invoked as the first argument.
  1014.  */
  1015.    va_list ap;
  1016.    va_start(ap, methodId);
  1017.    boolean __somResult = 
  1018.       SOM_ResolveD(this,ooxdbf,SOMObject,somDispatch)
  1019.     (this,retValue,methodId,ap);
  1020.    va_end(ap);
  1021.    return __somResult;
  1022. }
  1023.  
  1024.  
  1025. /* va_list method: somClassDispatch */
  1026.  
  1027. /*
  1028.  *  Like somDispatch, but method resolution for static methods is done
  1029.  *  according to the clsObj instance method table.
  1030.  */
  1031. /* the va_list invocation form */
  1032. boolean   ooxdbf_somClassDispatch(SOMClass* clsObj, 
  1033.         somToken* retValue, 
  1034.         somId methodId, 
  1035.         va_list ap)
  1036. {return SOM_ResolveD(this,ooxdbf,SOMObject,somClassDispatch)
  1037.     (this,clsObj,retValue,methodId,ap);
  1038. }
  1039.  
  1040. /* the varargs invocation form */
  1041. boolean   somClassDispatch(SOMClass* clsObj, 
  1042.         somToken* retValue, 
  1043.         somId methodId, 
  1044.         ...)
  1045. {
  1046. /*
  1047.  *  Like somDispatch, but method resolution for static methods is done
  1048.  *  according to the clsObj instance method table.
  1049.  */
  1050.    va_list ap;
  1051.    va_start(ap, methodId);
  1052.    boolean __somResult = 
  1053.       SOM_ResolveD(this,ooxdbf,SOMObject,somClassDispatch)
  1054.     (this,clsObj,retValue,methodId,ap);
  1055.    va_end(ap);
  1056.    return __somResult;
  1057. }
  1058.  
  1059.  
  1060. /* method: somCastObj */
  1061. boolean   somCastObj(SOMClass* cls)
  1062. {
  1063. /*
  1064.  *  cast the receiving object to cls (which must be an ancestor of the
  1065.  *  objects true class. Returns true on success.
  1066.  */
  1067.    return SOM_ResolveD(this,ooxdbf,SOMObject,somCastObj)
  1068.     (this,cls);
  1069. }
  1070.  
  1071.  
  1072. /* method: somResetObj */
  1073. boolean   somResetObj()
  1074. {
  1075. /*
  1076.  *  reset an object to its true class. Returns true always.
  1077.  */
  1078.    return SOM_ResolveD(this,ooxdbf,SOMObject,somResetObj)
  1079.     (this);
  1080. }
  1081.  
  1082.  
  1083. /* va_list method: somDispatchV */
  1084.  
  1085. /*
  1086.  *  Obsolete. Use somDispatch instead.
  1087.  */
  1088. /* the va_list invocation form */
  1089. void   ooxdbf_somDispatchV(somId methodId, 
  1090.         somId descriptor, 
  1091.         va_list ap)
  1092. {   SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchV)
  1093.     (this,methodId,descriptor,ap);
  1094. }
  1095.  
  1096. /* the varargs invocation form */
  1097. void   somDispatchV(somId methodId, 
  1098.         somId descriptor, 
  1099.         ...)
  1100. {
  1101. /*
  1102.  *  Obsolete. Use somDispatch instead.
  1103.  */
  1104.    va_list ap;
  1105.    va_start(ap, descriptor);
  1106.    SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchV)
  1107.     (this,methodId,descriptor,ap);
  1108.    va_end(ap);
  1109. }
  1110.  
  1111.  
  1112. /* va_list method: somDispatchL */
  1113.  
  1114. /*
  1115.  *  Obsolete. Use somDispatch instead.
  1116.  */
  1117. /* the va_list invocation form */
  1118. long   ooxdbf_somDispatchL(somId methodId, 
  1119.         somId descriptor, 
  1120.         va_list ap)
  1121. {return SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchL)
  1122.     (this,methodId,descriptor,ap);
  1123. }
  1124.  
  1125. /* the varargs invocation form */
  1126. long   somDispatchL(somId methodId, 
  1127.         somId descriptor, 
  1128.         ...)
  1129. {
  1130. /*
  1131.  *  Obsolete. Use somDispatch instead.
  1132.  */
  1133.    va_list ap;
  1134.    va_start(ap, descriptor);
  1135.    long __somResult = 
  1136.       SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchL)
  1137.     (this,methodId,descriptor,ap);
  1138.    va_end(ap);
  1139.    return __somResult;
  1140. }
  1141.  
  1142.  
  1143. /* va_list method: somDispatchA */
  1144.  
  1145. /*
  1146.  *  Obsolete. Use somDispatch instead.
  1147.  */
  1148. /* the va_list invocation form */
  1149. void*   ooxdbf_somDispatchA(somId methodId, 
  1150.         somId descriptor, 
  1151.         va_list ap)
  1152. {return SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchA)
  1153.     (this,methodId,descriptor,ap);
  1154. }
  1155.  
  1156. /* the varargs invocation form */
  1157. void*   somDispatchA(somId methodId, 
  1158.         somId descriptor, 
  1159.         ...)
  1160. {
  1161. /*
  1162.  *  Obsolete. Use somDispatch instead.
  1163.  */
  1164.    va_list ap;
  1165.    va_start(ap, descriptor);
  1166.    void* __somResult = 
  1167.       SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchA)
  1168.     (this,methodId,descriptor,ap);
  1169.    va_end(ap);
  1170.    return __somResult;
  1171. }
  1172.  
  1173.  
  1174. /* va_list method: somDispatchD */
  1175.  
  1176. /*
  1177.  *  Obsolete. Use somDispatch instead.
  1178.  */
  1179. /* the va_list invocation form */
  1180. double   ooxdbf_somDispatchD(somId methodId, 
  1181.         somId descriptor, 
  1182.         va_list ap)
  1183. {return SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchD)
  1184.     (this,methodId,descriptor,ap);
  1185. }
  1186.  
  1187. /* the varargs invocation form */
  1188. double   somDispatchD(somId methodId, 
  1189.         somId descriptor, 
  1190.         ...)
  1191. {
  1192. /*
  1193.  *  Obsolete. Use somDispatch instead.
  1194.  */
  1195.    va_list ap;
  1196.    va_start(ap, descriptor);
  1197.    double __somResult = 
  1198.       SOM_ResolveD(this,ooxdbf,SOMObject,somDispatchD)
  1199.     (this,methodId,descriptor,ap);
  1200.    va_end(ap);
  1201.    return __somResult;
  1202. }
  1203.  
  1204.  
  1205. /* method: somPrintSelf */
  1206. SOMObject*   somPrintSelf()
  1207. {
  1208. /*
  1209.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1210.  *  information about this object.  The default implementation just gives
  1211.  *  the object's class name and its address in memory.
  1212.  *  <self> is returned.
  1213.  */
  1214.    return SOM_ResolveD(this,ooxdbf,SOMObject,somPrintSelf)
  1215.     (this);
  1216. }
  1217.  
  1218.  
  1219. /* method: somDumpSelf */
  1220. void   somDumpSelf(long level)
  1221. {
  1222. /*
  1223.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  1224.  *  and its current state.
  1225.  * 
  1226.  *  <level> indicates the nesting level for describing compound objects
  1227.  *  it must be greater than or equal to zero.  All lines in the
  1228.  *  description will be preceeded by <2*level> spaces.
  1229.  * 
  1230.  *  This routine only actually writes the data that concerns the object
  1231.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  1232.  *  the object's current state.  This approach allows readable
  1233.  *  descriptions of compound objects to be constructed.
  1234.  * 
  1235.  *  Generally it is not necessary to override this method, if it is
  1236.  *  overriden it generally must be completely replaced.
  1237.  */
  1238.    SOM_ResolveD(this,ooxdbf,SOMObject,somDumpSelf)
  1239.     (this,level);
  1240. }
  1241.  
  1242.  
  1243. /* method: somDumpSelfInt */
  1244. void   somDumpSelfInt(long level)
  1245. {
  1246. /*
  1247.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  1248.  *  Generally this method will need to be overridden.  When overriding
  1249.  *  it, begin by calling the parent class form of this method and then
  1250.  *  write in a description of your class's instance data. This will
  1251.  *  result in a description of all the object's instance data going
  1252.  *  from its root ancestor class to its specific class.
  1253.  */
  1254.    SOM_ResolveD(this,ooxdbf,SOMObject,somDumpSelfInt)
  1255.     (this,level);
  1256. }
  1257.  
  1258.  
  1259.  
  1260. };   /* ooxdbf */
  1261.  
  1262.  
  1263.  
  1264. #endif       /* SOM_ooxdbf_xh */
  1265.